// 极简版
class Set {
	constructor(args) {
		this.items = {}
	}
	add(value) {
		if (!this.has(value)) {
			// 对象使用[] 中括号内可以是任意类型作为属性名   . 只能是非数字字符串作为属性名
			this.items[value] = value
			return true
		}
		return false
	}
	remove(value) {
		if (this.has(value)) {
			delete this.items[value]
			return true
		}
		return false
	}
	has(value) {
		return this.items.hasOwnProperty(value)
	}
	clear() {
		this.items = {}
	}
	size() {
		return Object.keys(this.items).length
	}
	values() {
		let values = []
		Object.keys(this.items).forEach((key) => {
			values.push(this.items[key])
		})
		return values
	}
	keys() {
		return Object.keys(this.items)
	}
}
